Field of the Invention
This invention relates to optimization of resource planning, including resource allocation and production planning, and more particularly, to optimization of resource planning for a multiple level process by use of an optimal resource allocation procedure in pharmacies.
The present invention also relates to resource scheduling to substantially optimally staff pharmacies on a day-to-day basis, and more particularly, to solving scheduling problems where resources perform a varying set of tasks and their individual rates (units/man hours) for each task can also vary. The resource allocation model (RAM) assigns the substantially optimal number of staff to areas in a pharmacy during specific times of the day at substantially the least cost while minimizing order turnaround time.
Background of the Related Art
The demand for resource allocation decisions generally occurs in a broad range of technological and industrial areas, such as the assignment of transmission facilities in telephone transmission systems, the control of the product mix of a factory, the deployment of industrial equipment, and inventory control. Resource allocation in this context generally means the deployment of specific technological or industrial resources for production of products or desired results.
Resource allocation decisions are typically subject to constraints such as limitations in availability of materials, equipment, time, cost, and other parameters affecting the outcome of a technological process. In addition, resource allocation decisions may also be subject to constraints relating to the utility of a particular resource in a particular application.
A particular allocation of resources may also be associated with a specific result, such as the cost or number of products produced. Resources should be allocated so as to satisfy all of the constraints, and simultaneously, to maximize a resulting benefit, such as by minimizing the costs or by maximizing the number of devices outputted by a manufacturing process.
Over the years many different resource scheduling algorithms have been developed. The simplest job scheduling algorithm is first come first served. This is similar to a bank office with a single active teller. Each customer comes in the door and gets in line. The customer is served only after all of the customers ahead in line are served. This algorithm suffers from the disadvantage that if the first customer has a very long transaction, all of the other customers must wait.
Another job scheduling algorithm is shortest job first. In this algorithm, each customer is asked how many transactions he needs to make. The customer with the least number of transactions is served first. This algorithm has the disadvantage in that it is hard to tell in advance how long it will actually take to serve the customer. The customer may have only one transaction, but the transaction may be extremely complicated and take 15 minutes. Another customer may have two transactions which will only take one minute each.
This difficulty in knowing ahead of time how long the transaction is going to take, has minimized the use of the shortest job first algorithm. Another problem with this algorithm is that a customer with a large number of transactions may never get served. If new customers keep coming in the bank, they will get served ahead of older customers that require more transactions. For this reason, it is desirable to introduce the concept of “fairness” in a job scheduler. A good scheduling algorithm is both efficient and fair.
To overcome these problems, priorities can be assigned to various classes of customers. Usually within a class, customers are served in first come first served order. Suppose for example that there are three classes of customers, private, small business, and large business, having priorities of 1, 2, and 3 respectively, where higher is better. If one customer of each class walks in the door at the same time, they will be served in this order: large business, small business, and private. It when the small business customer is being served, another small business customer comes in the door, he will cut in line before the private customer. This is generally called priority scheduling.
Even with the addition of priorities, job scheduling suffers from disadvantages, the primary being the inability to optimize job scheduling. Accordingly, another innovation has been to monitor the behaviour of the job in the system to determine where the job should stand in line. Thus, a customer would initially get in line at the appropriate place based on his priority. But if a customer is being served for an unusually long time, the customer would have to give up his spot and move back to a position in the line. In this way, the customers would each get served for at least some period of time during each time through the line. When all of the customers have the same priority, this is called round robin scheduling. In cases where customers have different priorities, a hierarchy of lines is developed, and customers who use too much time will get bumped to lower and lower priority levels. This scheduling method with varying priorities is called multilevel feedback queues.
One attempt at solving one or more of the above problems is disclosed in U.S. Pat. No. 5,630,070 to Dietrich, et al., incorporated herein by reference. Dietrich, et al, relates to a method for constrained material requirements planning, optimal resource allocation, and production planning. The method provides for optimization of a manufacturing process by designating the amounts of various manufactured products to be produced. The products include both end products and subassemblies to be employed in the manufacture of one or more of the end products.
In order to accomplish the optimization, the Dietrich, et al. method employs an objective function, such as the maximization of income, in a situation wherein there are limitations on the inventory of raw materials and tools to be employed in the manufacturing process. Data describing elemental steps in the manufacturing process for the production of each end product, as well as the quantity or demand for each end product which is to be supplied, are presented as a set of linear mathematical relationships in matrix form to be inserted in a computer which determines the optimum number of each end product in accordance with an optimization algorithm. The matrix contains bill of material data, and various constraints such as a constraint on the sum of products shipped and use as subassemblies, and constraints based on inventory, on available time for use of resources such as tools, and on inventory left over from an early production run for a later run.
U.S. Pat. No. 5,442,730 to Bigus, incorporated herein by reference, is another attempt to further enhance job scheduling optimization. In Bigus, a job scheduler makes decisions concerning the order and frequency of access to a resource according to a substantially optimum delay cost function. The delay cost function is a single value function of one or more inputs, where at least one of the inputs is a delay time which increases as a job waits for service. The job scheduler is preferably used by a multi-user computer operating system to schedule jobs or different classes. The delay cost functions are preferably implemented by neural networks. The user specifies desired performance objectives for each job class. The computer system runs for a specified period of time, collecting data on system performance. The differences between the actual and desired performance objectives are computed, and used to adaptively train the neural network. The process repeats until the delay cost functions stabilize near optimum value. However, if the system configuration, workload, or desired performance objectives change, the neural network will again start to adapt.
U.S. Pat. No. 4,648,023 to Powell, incorporated herein by reference, is another attempt to further enhance job scheduling optimization. In Powell, a control system controls the manufacture of small-order-quantity goods. A network of events, activities and baseline schedule dates is constructed. Availability of external components and actual internal progress are measured by a slack variable. Optimization is based on use of the slack variable for allocation of resources. Critical items are determined rapidly and in parallel. Cost estimation of schedule improvements are readily determined.
While the above optimization techniques have been used successfully in other industries as operational management tools, we have determined that the use of such techniques is new to the managed care, health care and/or pharmacy industry. For example, each pharmacy and/or mail order pharmacy currently expends a great deal of management and clerical resources preparing a daily staffing plan (schedule). Allocation of staff to function in order to meet mail order claims throughput targets is a manual and unstandardized process.
These highly distributed manual process involve (1) trial and error placement of parameters into Lotus spreadsheets, (2) visual inspection, evaluation, and discussion of calculated results by a team of 20+ people/managers of functional areas, (3) incremental group decision making, (4) iteration of steps 1 through 3 until group consensus determined that output calculations and management intuition as to the effects of the parameter changes were in agreement, satisfactory, and “optimal”.
We have determined that the disadvantages of the current methods used in the managed care, health care, and/or pharmacy industry are (1) extreme cost of high-level process management personnel in terms of time and salary, (2) no single and/or generic decision support tool or methodology which is flexible and robust enough to adapt to the diversity in operational facility processes, (3) no robust and abstract definition of resource, (4) no flexible but uniform analytical methodology, (5) the problem is too complex for management to schedule resources to tasks or functions at specific times, and (6) the current process is suboptimal.
Accordingly, we have determined that it is desirable to provide a process for optimizing and/or improving the managed care, herein care, and/or pharmacy industry that reduces the amount of costly high-level process management personnel.
We have also determined that it is desirable to provide a process for optimizing and/or improving the managed care, health care, and/or pharmacy industry that provides a generic decision support tool or methodology which is flexible and robust enough to adapt to the diversity in operational facility processes.
We have also determined that it is desirable to provide a process for optimizing and/or improving the managed care, health care, and/or pharmacy industry that is robust and utilizes as abstract definition of resources.
We have also determined that it is desirable to provide a process for optimizing and/or improving the managed care, health care, and/or pharmacy industry that provides a flexible and/or uniform analytical methodology.
We have also determined that it is desirable to provide a process for optimizing and/or improving the managed care, health care, and/or pharmacy industry that allows management to easily schedule resources to tasks or functions at specific times.
We have also determined that it is desirable to provide an improved process for optimizing and/or improving the managed care, health care, and/or pharmacy industry.